{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### imports"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "code_folding": [],
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# imports\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import numpy.ma as ma\n",
    "from numpy.random import uniform, seed\n",
    "\n",
    "from tqdm import tqdm_notebook as tqdm\n",
    "\n",
    "import matplotlib.pyplot as plt \n",
    "import matplotlib\n",
    "from matplotlib import cm\n",
    "# This import registers the 3D projection, but is otherwise unused.\n",
    "from mpl_toolkits.mplot3d import Axes3D  # noqa: F401 unused import\n",
    "from matplotlib.collections import PolyCollection\n",
    "from matplotlib import colors as mcolors\n",
    "from matplotlib.ticker import FormatStrFormatter\n",
    "\n",
    "\n",
    "from scipy.interpolate import CubicSpline, UnivariateSpline, griddata\n",
    "# from scipy.signal import savgol_filter\n",
    "\n",
    "%matplotlib inline\n",
    "import scipy\n",
    "\n",
    "def bin_data(xi, yi):\n",
    "    x = np.unique(xi)\n",
    "    y = [None] * x.size\n",
    "    for i in range(x.size): y[i] = yi[xi == x[i]]\n",
    "    # Return \n",
    "    y_mean = np.array([a.mean() for a in y])\n",
    "    y_err = np.array([np.std(a) / (a.size**0.5) for a in y])\n",
    "    return (x, y_mean, y_err, y, xi, yi)\n",
    "\n",
    "\n",
    "\n",
    "def cc(arg):\n",
    "    '''\n",
    "    Shorthand to convert 'named' colors to rgba format at 60% opacity.\n",
    "    '''\n",
    "    return mcolors.to_rgba(arg, alpha=0.6)\n",
    "\n",
    "\n",
    "def polygon_under_graph(xlist, ylist):\n",
    "    '''\n",
    "    Construct the vertex list which defines the polygon filling the space under\n",
    "    the (xlist, ylist) line graph.  Assumes the xs are in ascending order.\n",
    "    '''\n",
    "    return [(xlist[0], 0.), *zip(xlist, ylist), (xlist[-1], 0.)]\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "colorstyle=dict(red_face = np.array([255,85,65])/255, red_edge = np.array([201,67,52])/255,\n",
    "                blue_face = np.array([49,115,255])/255, blue_edge = np.array([36,85,189])/255,\n",
    "                green_face= np.array([84,224,81])/255, green_edge= np.array([62,166,60])/255,\n",
    "                yellow_face=np.array([255,207,49])/255,yellow_edge=np.array([191,155,36])/255,\n",
    "                gray_face=np.array([169,169,169])/255,gray_edge=np.array([137,137,137])/255)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def Xnn_app1(omega,k,c1,c2,D1,D2,alpha,Gamma):\n",
    "    Denorminator=(omega**2-(c1**2*k**2)+1j*D1*k**2*omega)*(omega**2-(c2**2*k**2)+1j*D2*k**2*omega)\n",
    "    Numberator=omega**2+(1j*Gamma*k**2*omega)-alpha*(c1**2)*(c2**2)*k**2\n",
    "    return k**2*Numberator/Denorminator \n",
    "\n",
    "def XTn_app1(omega,k,c1,c2,D1,D2,alpha,Gamma):\n",
    "    Denorminator=(omega**2-(c1**2*k**2)+1j*D1*k**2*omega)*(omega**2-(c2**2*k**2)+1j*D2*k**2*omega)\n",
    "    Numberator=-(1j*Gamma*k**2*omega)+alpha*(c1**2)*(c2**2)*k**2\n",
    "    return k**2*Numberator/Denorminator \n",
    "\n",
    "def ImXnn_app1(omega,k,c1,c2,D1,D2,alpha,Gamma):\n",
    "    return np.imag(Xnn_app1(omega,k,c1,c2,D1,D2,alpha,Gamma))\n",
    "\n",
    "def ImXTn_app1(omega,k,c1,c2,D1,D2,alpha,Gamma):\n",
    "    return np.imag(XTn_app1(omega,k,c1,c2,D1,D2,alpha,Gamma))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Stringari paper"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "second_x = np.array([0.        , 0.02039671, 0.03901979, 0.06119012, 0.07803957,\n",
    "       0.10020991, 0.13124837, 0.17204179, 0.2128352 , 0.25008136,\n",
    "       0.29353521, 0.33610225, 0.3724616 , 0.41680227, 0.45670886,\n",
    "       0.51080448, 0.56223965, 0.61012757, 0.64205285, 0.68018582,\n",
    "       0.71299792, 0.75467814, 0.80345288, 0.84247266, 0.88681333,\n",
    "       0.9178518 , 0.94534301, 0.96662653, 0.97372104, 0.97726829,\n",
    "       0.97904192])\n",
    "second_y = np.array([0.21085271, 0.21085271, 0.20878553, 0.20671835, 0.20361757,\n",
    "       0.1994832 , 0.19224806, 0.17984496, 0.16537468, 0.15090439,\n",
    "       0.13229974, 0.11576227, 0.10956072, 0.10749354, 0.10852713,\n",
    "       0.11162791, 0.11472868, 0.11679587, 0.11679587, 0.11576227,\n",
    "       0.11369509, 0.10956072, 0.10129199, 0.09302326, 0.08062016,\n",
    "       0.06925065, 0.05581395, 0.03927649, 0.02894057, 0.01343669,\n",
    "       0.00103359])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Rudy Grim data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "grimm = [[0.9735849056603774, 0.26073619631901834],\n",
    "    [0.9603773584905662, 0.2760736196319018],\n",
    "    [0.9452830188679247, 0.30368098159509216],\n",
    "    [0.9264150943396225, 0.34662576687116564],\n",
    "    [0.9037735849056605, 0.401840490797546],\n",
    "    [0.8773584905660379, 0.4570552147239264],\n",
    "    [0.8528301886792453, 0.49386503067484666],\n",
    "    [0.828301886792453, 0.5306748466257669],\n",
    "    [0.8056603773584905, 0.5766871165644172],\n",
    "    [0.7830188679245284, 0.6042944785276074],\n",
    "    [0.7603773584905661, 0.6380368098159509],\n",
    "    [0.7377358490566037, 0.6993865030674847],\n",
    "    [0.718867924528302, 0.7546012269938651],\n",
    "    [0.6981132075471698, 0.794478527607362],\n",
    "    [0.679245283018868, 0.8527607361963192],\n",
    "    [0.660377358490566, 0.8987730061349695],\n",
    "    [0.6433962264150944, 0.9447852760736197],\n",
    "    [0.6283018867924528, 0.9570552147239264],\n",
    "    [0.6132075471698114, 0.9325153374233129],\n",
    "    [0.6, 0.9355828220858897],\n",
    "    [0.5886792452830188, 0.9570552147239264],\n",
    "    [0.5773584905660378, 0.9447852760736197],\n",
    "    [0.5679245283018869, 0.9141104294478528],\n",
    "    [0.5584905660377358, 0.9478527607361964],\n",
    "    [0.5490566037735849, 0.9785276073619633],\n",
    "    [0.5415094339622643, 0.9877300613496933],\n",
    "    [0.5358490566037737, 1],\n",
    "    [0.5226415094339623, 1.0153374233128836],\n",
    "    [0.5283018867924528, 1.0092024539877302],\n",
    "    [0.5150943396226415, 0.98159509202454]]\n",
    "grimm = np.array(grimm).T\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Fig4"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "x_offset=0.25\n",
    "y_offset=0.16\n",
    "\n",
    "vspacing=0.005\n",
    "box_width=0.7\n",
    "box_height_speed=0.20\n",
    "vspacing_speedplot=0.0075\n",
    "\n",
    "box_height_fraction=0.13\n",
    "box_height_D2=0.16\n",
    "\n",
    "\n",
    "ylabel_position=-0.185"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "df_all=pd.read_pickle('Fig4_1.pkl')\n",
    "df_Resp=pd.read_pickle('Fig4_2.pkl')\n",
    "df_LH=pd.read_pickle('Fig4_3.pkl')\n",
    "df_LH_Bin=pd.read_pickle('Fig4_4.pkl')\n",
    "df_RhoS_error=pd.read_pickle('Fig4_5.pkl')\n",
    "\n",
    "Tc=0.167"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\ny1DRKorL+D8wDrpWNkSYeAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 243x576 with 5 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, axs = plt.subplots(5, 1, sharex=True,figsize=[3.375,8])\n",
    "\n",
    "ax1=axs[0]\n",
    "ax2=axs[1]\n",
    "\n",
    "\n",
    "# plot the speed of 1st and 2nd sound\n",
    "\n",
    "ax1.tick_params(axis='both',direction='out',top=False,right=False,bottom=False,labelsize=9,length=1.5)\n",
    "ax2.tick_params(axis='both',direction='out',top=0,right=0,labelsize=9,length=1.5)\n",
    "\n",
    "\n",
    "plt.sca(ax1)\n",
    "\n",
    "plt.errorbar(df_Resp.TTilde/Tc,df_Resp.c1,xerr=[df_Resp.TTilde_err_left/Tc,df_Resp.TTilde_err_right/Tc],yerr=df_Resp.c1_err,\n",
    "             marker='o',linestyle='None',markersize=2.25,color=colorstyle['gray_edge'],\n",
    "             mec=colorstyle['gray_edge'],mfc=colorstyle['gray_face'],markeredgewidth=0.75,elinewidth=0.5,label='Sonogram')\n",
    "\n",
    "\n",
    "# ax.set_xticks([])\n",
    "\n",
    "plt.ylim([0.385,0.47])\n",
    "# plt.axvline(0.167,linestyle='--',color='k',label='Tc',linewidth=0.75)\n",
    "\n",
    "ax1.set_yticks([0.4,0.45])\n",
    "\n",
    "plt.sca(ax2)\n",
    "\n",
    "# mask1=(TTilde_plot/Tc_plot*Tc)<Tc\n",
    "# mask2=(TTilde_plot/Tc_plot*Tc)>Tc\n",
    "\n",
    "# plt.plot(TTilde_plot[mask1]/Tc_plot*Tc,c2_plot[mask1],'-.',color='k',linewidth=0.75)\n",
    "\n",
    "plt.plot(second_x,second_y,'-.',color='k',linewidth=0.75)\n",
    "\n",
    "# plt.plot(second_x,second_y)\n",
    "# plt.plot([0.167/Tc,0.21/Tc],[0,0],'-.',color='k',linewidth=0.75)\n",
    "\n",
    "\n",
    "plt.errorbar(df_Resp.TTilde/Tc,df_Resp.c2_decay,xerr=[df_Resp.TTilde_err_left/Tc,df_Resp.TTilde_err_right/Tc],yerr=df_Resp.c2_decay_err,\n",
    "             marker='s',linestyle='None',markersize=2.25,color=colorstyle['yellow_edge'],\n",
    "             mec=colorstyle['yellow_edge'],mfc=colorstyle['yellow_face'],markeredgewidth=0.5,elinewidth=0.5,label='Sonogram')\n",
    "\n",
    "\n",
    "plt.errorbar(df_LH.TTilde/Tc,df_LH.c2,xerr=[df_LH.TTilde_err_left/Tc,df_LH.TTilde_err_right/Tc],yerr=df_LH.c2_err,\n",
    "             marker='d',linestyle='None',markersize=2.5,color=colorstyle['red_edge'],\n",
    "             mec=colorstyle['red_edge'],mfc=colorstyle['red_face'],markeredgewidth=0.75,elinewidth=0.5,label='Sonogram')\n",
    "\n",
    "\n",
    "plt.errorbar(df_Resp.TTilde/Tc,df_Resp.c2,xerr=[df_Resp.TTilde_err_left/Tc,df_Resp.TTilde_err_right/Tc],yerr=df_Resp.c2_err,\n",
    "             marker='o',linestyle='None',markersize=2.25,color=colorstyle['blue_edge'],\n",
    "             mec=colorstyle['blue_edge'],mfc=colorstyle['blue_face'],markeredgewidth=0.75,elinewidth=0.5,label='Sonogram')\n",
    "\n",
    "\n",
    "plt.xlim([0.04/Tc,0.21/Tc])\n",
    "plt.ylim([-0.0075,0.135])\n",
    "\n",
    "ax1.spines['bottom'].set_visible(False)\n",
    "ax2.spines['top'].set_visible(False)\n",
    "# ax1.xaxis.tick_top()\n",
    "# ax1.tick_params(labeltop='off')  # don't put tick labels at the top\n",
    "ax2.xaxis.tick_bottom()\n",
    "\n",
    "ylim1L,ylim1U=ax1.get_ylim()\n",
    "ylim2L,ylim2U=ax2.get_ylim()\n",
    "\n",
    "yrange1=ylim1U-ylim1L\n",
    "yrange2=ylim2U-ylim2L\n",
    "\n",
    "ax1.set_position([x_offset,y_offset+box_height_fraction*2+box_height_D2+vspacing*3+box_height_speed/(yrange1+yrange2)*yrange2+vspacing_speedplot,box_width,box_height_speed/(yrange1+yrange2)*yrange1])\n",
    "ax2.set_position([x_offset,y_offset+box_height_fraction*2+box_height_D2+vspacing*3,box_width,box_height_speed/(yrange1+yrange2)*yrange2])\n",
    "\n",
    "d = .015  # how big to make the diagonal lines in axes coordinates\n",
    "# arguments to pass to plot, just so we don't keep repeating them\n",
    "\n",
    "ax_width=ax1.get_position().width*fig.get_size_inches()[0]\n",
    "ax1_height=ax1.get_position().height*fig.get_size_inches()[1]\n",
    "ax2_height=ax2.get_position().height*fig.get_size_inches()[1]\n",
    "\n",
    "kwargs = dict(transform=ax1.transAxes, color='k', clip_on=False)\n",
    "ax1.plot((-d, +d), (-d*ax_width/ax1_height, +d*ax_width/ax1_height), **kwargs,linewidth=0.75)        # top-left diagonal\n",
    "ax1.plot((1 - d, 1 + d), (-d*ax_width/ax1_height, +d*ax_width/ax1_height), **kwargs,linewidth=0.75)  # top-right diagonal\n",
    "\n",
    "kwargs.update(transform=ax2.transAxes)  # switch to the bottom axes\n",
    "ax2.plot((-d, +d), (1 - d*ax_width/ax2_height, 1 + d*ax_width/ax2_height), **kwargs,linewidth=0.75)  # bottom-left diagonal\n",
    "ax2.plot((1 - d, 1 + d), (1 - d*ax_width/ax2_height, 1 + d*ax_width/ax2_height), **kwargs,linewidth=0.75)  # bottom-right diagonal\n",
    "\n",
    "# plt.plot([0.167,0.167],[ylim2L,ylim2L+(yrange1+yrange2)/box_height_speed*(box_height_speed+vspacing_speedplot)],linestyle='--',color='k',label='Tc',linewidth=0.75,clip_on=False)\n",
    "plt.fill_between([(0.167+0.01)/Tc,(0.167-0.01)/Tc],[ylim2L+(yrange1+yrange2)/box_height_speed*(box_height_speed+vspacing_speedplot),ylim2L+(yrange1+yrange2)/box_height_speed*(box_height_speed+vspacing_speedplot)],[ylim2L,ylim2L],color=[0.5,0.5,0.5],clip_on=False,alpha=0.2,linewidth=0)\n",
    "\n",
    "plt.yticks([0,0.05,0.10])\n",
    "plt.ylabel(r'$c\\,/v_\\mathrm{F}$',fontsize=9)\n",
    "\n",
    "ax2.yaxis.set_label_coords(ylabel_position,0.95)\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "\n",
    "axs[2].set_position([x_offset,y_offset+box_height_fraction*1+box_height_D2+vspacing*2,box_width,box_height_fraction])\n",
    "axs[2].tick_params(axis='both',direction='out',top=0,right=0,labelsize=9,length=1.5)\n",
    "\n",
    "\n",
    "plt.sca(axs[2])\n",
    "\n",
    "\n",
    "\n",
    "plt.axhline(0,linestyle=':',color='k',alpha=0.2,linewidth=0.75)\n",
    "\n",
    "# plt.axvline(0.167,linestyle='--',color='k',linewidth=0.75)\n",
    "plt.fill_between([(0.167+0.01)/Tc,(0.167-0.01)/Tc],[1.08,1.08],[-0.08,-0.08],color=[0.5,0.5,0.5],alpha=0.2,linewidth=0)\n",
    "\n",
    "plt.errorbar(df_Resp.TTilde/Tc,df_Resp.rhoS_rho_decay,xerr=[df_Resp.TTilde_err_left/Tc,df_Resp.TTilde_err_right/Tc],yerr=[df_Resp.rhoS_rho_decay_err_low,df_Resp.rhoS_rho_decay_err_high],\n",
    "             marker='s',linestyle='None',markersize=2.25,color=colorstyle['yellow_edge'],\n",
    "             mec=colorstyle['yellow_edge'],mfc=colorstyle['yellow_face'],markeredgewidth=0.5,elinewidth=0.5,label='Gradient Shaking')\n",
    "\n",
    "plt.errorbar(df_Resp.TTilde/Tc,df_Resp.rhoS_rho,xerr=[df_Resp.TTilde_err_left/Tc,df_Resp.TTilde_err_right/Tc],yerr=[df_Resp.rhoS_rho_err_low,df_Resp.rhoS_rho_err_high],\n",
    "             marker='o',linestyle='None',markersize=2.25,color=colorstyle['blue_edge'],\n",
    "             mec=colorstyle['blue_edge'],mfc=colorstyle['blue_face'],markeredgewidth=0.5,elinewidth=0.5,label='Sonogram')\n",
    "\n",
    "plt.errorbar(df_LH.TTilde/Tc,df_LH.rhoS_rho,xerr=[df_LH.TTilde_err_left/Tc,df_LH.TTilde_err_right/Tc],yerr=[df_LH.rhoS_rho_err_low,df_LH.rhoS_rho_err_high],\n",
    "             marker='d',linestyle='None',markersize=2.5,color=colorstyle['red_edge'],\n",
    "             mec=colorstyle['red_edge'],mfc=colorstyle['red_face'],markeredgewidth=0.5,elinewidth=0.5,label='Local Heater')\n",
    "\n",
    "\n",
    "plt.fill_between(df_RhoS_error.TTilde/Tc,df_RhoS_error.RhoS_shade_low,df_RhoS_error.RhoS_shade_high,color=colorstyle['blue_face'],alpha=0.10,linewidth=0)\n",
    "\n",
    "# plt.plot(T_shade_show,RhoS_shade_lower,'.:',markersize=1,color='C0')\n",
    "# plt.plot(T_shade_show,RhoS_shade_upper,'.:',markersize=1,color='C0')\n",
    "\n",
    "# plt.fill_between(T_shade_show,RhoS_shade_upper_s(T_shade_show),RhoS_shade_lower_s(T_shade_show),color=colorstyle['blue_face'],alpha=0.2,linewidth=0)\n",
    "\n",
    "\n",
    "plt.plot(grimm[0],grimm[1],'o',markersize=1.5,markeredgewidth=0.5,\n",
    "         mec=colorstyle['green_edge'],mfc=colorstyle['green_face'],alpha=0.5,label='Innsbruck')\n",
    "\n",
    "plt.ylim([-0.08,1.08])\n",
    "plt.yticks([0,0.5,1])\n",
    "# axs[0].set_yticklabels(['0','','1'])\n",
    "plt.ylabel(r'$\\rho_\\mathrm{S}/\\rho$',fontsize=9)\n",
    "axs[2].yaxis.set_label_coords(ylabel_position,0.525)\n",
    "\n",
    "\n",
    "axs[3].set_position([x_offset,y_offset+box_height_D2+vspacing,box_width,box_height_fraction])\n",
    "axs[3].tick_params(axis='both',direction='out',top=0,right=0,labelsize=9,length=1.5)\n",
    "\n",
    "plt.sca(axs[3])\n",
    "\n",
    "\n",
    "\n",
    "plt.axhline(0,linestyle=':',color='k',alpha=0.2,linewidth=0.75)\n",
    "\n",
    "# plt.axvline(0.167,linestyle='--',color='k',linewidth=0.75)\n",
    "plt.fill_between([(0.167+0.01)/Tc,(0.167-0.01)/Tc],[1.08,1.08],[-0.08,-0.08],color=[0.5,0.5,0.5],alpha=0.2,linewidth=0)\n",
    "\n",
    "plt.errorbar(df_Resp.TTilde/Tc,df_Resp.cond_frac,yerr=0.025,xerr=[df_Resp.TTilde_err_left/Tc,df_Resp.TTilde_err_right/Tc],linestyle='None',marker='o',\n",
    "             markersize=2.5,markeredgewidth=0.5,mec='k',mfc=colorstyle['gray_edge'],\n",
    "             alpha=1,ecolor='k',elinewidth=0.5)\n",
    "\n",
    "\n",
    "plt.errorbar(df_LH.TTilde/Tc,df_LH.cond_frac,yerr=0.025,xerr=[df_LH.TTilde_err_left/Tc,df_LH.TTilde_err_right/Tc],linestyle='None',marker='o',\n",
    "             markersize=2.5,markeredgewidth=0.5,mec='k',mfc=colorstyle['gray_edge'],\n",
    "             alpha=1,ecolor='k',elinewidth=0.5)\n",
    "\n",
    "\n",
    "plt.ylim([-0.08,1.08])\n",
    "plt.yticks([0,0.5,1])\n",
    "# axs[0].set_yticklabels(['0','','1'])\n",
    "plt.ylabel('Condensate\\n Fraction',fontsize=9)\n",
    "axs[3].yaxis.set_label_coords(ylabel_position,0.525)\n",
    "\n",
    "axs[4].set_position([x_offset,y_offset,box_width,box_height_D2])\n",
    "axs[4].tick_params(axis='both',direction='out',top=0,right=0,labelsize=9,length=1.5)\n",
    "\n",
    "plt.sca(axs[4])\n",
    "plt.fill_between([(0.167+0.01)/Tc,(0.167-0.01)/Tc],[50,50],[-50,-50],color=[0.5,0.5,0.5],alpha=0.2,linewidth=0)\n",
    "\n",
    "\n",
    "\n",
    "plt.errorbar(df_Resp.TTilde/Tc,df_Resp.D2_decay,xerr=[df_Resp.TTilde_err_left/Tc,df_Resp.TTilde_err_right/Tc],yerr=df_Resp.D2_decay_err,\n",
    "             marker='s',linestyle='None',markersize=2.25,color=colorstyle['yellow_edge'],\n",
    "             mec=colorstyle['yellow_edge'],mfc=colorstyle['yellow_face'],markeredgewidth=0.5,elinewidth=0.5,label='Sonogram',zorder=2)\n",
    "\n",
    "plt.errorbar(df_Resp.TTilde/Tc,df_all.D2,xerr=[df_Resp.TTilde_err_left/Tc,df_Resp.TTilde_err_right/Tc],yerr=df_Resp.D2_err,\n",
    "             marker='o',linestyle='None',markersize=2.25,color=colorstyle['blue_edge'],\n",
    "             mec=colorstyle['blue_edge'],mfc=colorstyle['blue_face'],markeredgewidth=0.5,elinewidth=0.5,label='Sonogram',zorder=1)\n",
    "\n",
    "\n",
    "plt.errorbar(df_LH_Bin.TTilde/Tc,df_LH_Bin.D2,xerr=[df_LH_Bin.TTilde_err_left/Tc,df_LH_Bin.TTilde_err_right/Tc],yerr=df_LH_Bin.D2_err,\n",
    "             marker='d',linestyle='None',markersize=2.5,color=colorstyle['red_edge'],\n",
    "             mec=colorstyle['red_edge'],mfc=colorstyle['red_face'],markeredgewidth=0.5,elinewidth=0.5,label='Local Heater',zorder=3)\n",
    "\n",
    "\n",
    "plt.ylabel('$D_2$ ($\\hbar/m$)',fontsize=9,labelpad=6.5)\n",
    "plt.xlabel('$T/T_\\mathrm{c}$',fontsize=9)\n",
    "axs[4].yaxis.set_label_coords(ylabel_position,0.525)\n",
    "\n",
    "\n",
    "plt.ylim([0,7.8])\n",
    "\n",
    "plt.xlim([0.04/Tc,0.21/Tc])\n",
    "plt.xticks([0.4,0.6,0.8,1.0,1.2])\n",
    "plt.yticks([0.0,2.0,4.0,6.0])\n",
    "\n",
    "axs[4].yaxis.set_major_formatter(FormatStrFormatter('%.1f'))\n",
    "\n",
    "fig.savefig('Fig4.pdf',dpi=300)\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [default]",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.3"
  },
  "toc": {
   "colors": {
    "hover_highlight": "#DAA520",
    "navigate_num": "#000000",
    "navigate_text": "#333333",
    "running_highlight": "#FF0000",
    "selected_highlight": "#FFD700",
    "sidebar_border": "#EEEEEE",
    "wrapper_background": "#FFFFFF"
   },
   "moveMenuLeft": true,
   "nav_menu": {
    "height": "120px",
    "width": "252px"
   },
   "navigate_menu": true,
   "number_sections": true,
   "sideBar": true,
   "threshold": 4,
   "toc_cell": false,
   "toc_position": {
    "height": "629px",
    "left": "0px",
    "right": "1112px",
    "top": "106px",
    "width": "212px"
   },
   "toc_section_display": "block",
   "toc_window_display": true,
   "widenNotebook": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
